<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
// 三种状态:pending、fulfilled、rejected
let p = new Promise((resolve,reject)=>{
    resolve("success");
    // reject("err");
})

// console.log(p);

// then方法里的2种参数
// p.then(res=>{
//     console.log(res);
// },err=>{
//     console.log(err);
// })

// then方法返还值. 都会返还一个promise对象  实现链式操作 

// let p2 = p.then(res=>{
//     // return 123;
//     return new Promise((resolve,reject)=>{
//         resolve("返还的值");
//     })
// })
// p2.then(res=>{
//     console.log(res);
// })
// console.log(p2);
// 1.原型方法
// p.then(res=>{
//     console.log(res);
// }).catch(err=>{
//     console.log(err);
// })
// p.then(res=>{
//     console.log(res);
// },err=>{
//     console.log(err);
// }).finally(()=>{
//     console.log("执行完成");  
// })

// 2.静态方法reslove reject all race allSettled
// let res =  Promise.resolve("success");
// console.log(res);
// let res =  Promise.reject("err");
// console.log(res);
let p1 = new Promise((resolve,reject)=>{
    setTimeout(()=>{
        // resolve("success1");
        reject("err");
    },1000)
})
let p2 = new Promise(resolve=>{
    setTimeout(()=>{
        resolve("success2");
    },2000)
})

Promise.race([p1,p2]).then(res=>{
    console.log(res);
},err=>{
    console.log(err)
})
// Promise.allSettled([p1,p2]).then(res=>{
//     console.log(res);
// })


// Promise.all([p1,p2]).then(res=>{
//     console.log(res);
// })






</script>
</html>